home *** CD-ROM | disk | FTP | other *** search
- /********************************************
- ; File: List.h
- ;
- ;
- ; Copyright Apple Computer, Inc. 1986, 1987
- ; All Rights Reserved
- ;
- ********************************************/
-
- #ifndef __types__
- #include <types.h>
- #endif
-
- #ifndef __quickdraw__
- #include <quickdraw.h>
- #endif
-
- #ifndef __event__
- #include <event.h>
- #endif
-
- #ifndef __control__
- #include <control.h>
- #endif
-
- #ifndef __list__
- #define __list__
-
- #define cString 0x0001 /*ListType bit mask - null terminated string type */
- #define LIST_STRG 0x0001 /*ListType bit mask - null terminated string type */
- #define selectOnlyOne 0x0002 /*ListType bit mask - only one selection allowed */
- #define LIST_SELECT 0x0002 /*ListType bit mask - single selection only */
-
- #define memDisabled 0x40 /*memFlag - Sets member flag to disabled */
- #define memSelected 0x80 /*memFlag - Sets member flag to selected */
-
- typedef struct MemRec {
- Pointer memPtr; /* MemRec - Pointer to string, or custom */
- Byte memFlag; /* MemRec - Bit Flag */
- } MemRec, *MemRecPtr, **MemRecHndl ;
-
- typedef struct LColorTable {
- Word listFrameClr; /* LColorTable - Frame color */
- Word listNorTextClr; /* LColorTable - Unhighlighted text color */
- Word listSelTextClr; /* LColorTable - Highlighted text color */
- Word listNorBackClr; /* LColorTable - Unhighlighted background color */
- Word listSelBackClr; /* LColorTable - Highlighted backgraound color */
- } LColorTable, *LColorTablePtr, **LColorTableHndl ;
-
- typedef struct ListCtlRec {
- CtlRecHndl ctlNext; /* ListCtlRec - Handle of Next Control */
- GrafPortPtr ctlOwner; /* ListCtlRec - Window owner */
- Rect ctlRect; /* ListCtlRec - Enclosing Rect */
- Byte ctlFlag; /* ListCtlRec - Bit 7 visible, Bit 0 string type, Bit 1 multiple */
- Byte ctlHilite; /* ListCtlRec - (not used) */
- Word ctlValue; /* ListCtlRec - First member in display */
- LongProcPtr ctlProc; /* ListCtlRec - Address of list definition procedure */
- LongProcPtr ctlAction; /* ListCtlRec - Address of list action procedure */
- LongWord ctlData; /* ListCtlRec - Low = view size, High = total members */
- LongWord ctlRefCon; /* ListCtlRec - Not used */
- LColorTablePtr ctlColor; /* ListCtlRec - Null for default colors */
- VoidProcPtr ctlMemDraw; /* ListCtlRec - Address of routine to draw members */
- Word ctlMemHeight; /* ListCtlRec - Member's Height in Pixels */
- Word ctlMemSize; /* ListCtlRec - Bytes in member record */
- MemRecPtr ctlList; /* ListCtlRec - Adress of first member record in array */
- CtlRecHndl ctlListBar; /* ListCtlRec - Handle of list contrlo's scroll bar control */
- } ListCtlRec, *ListCtlRecPtr, **ListCtlRecHndl ;
-
- typedef struct ListRec {
- Rect listRect; /* ListRec - Enclosing Rectangle */
- Word listSize; /* ListRec - Number of List Members */
- Word listView; /* ListRec - Max Viewable members */
- Word listType; /* ListRec - Bit Flag */
- Word listStart; /* ListRec - First member in view */
- CtlRecHndl listCtl; /* ListRec - List control's handle */
- VoidProcPtr listDraw; /* ListRec - Adress of Custum drawing routine */
- Word listMemHeight; /* ListRec - Height of list members */
- Word listMemSize; /* ListRec - Size of Member Records */
- MemRecPtr listPointer; /* ListRec - Pointer to first element in MemRec[] */
- LongWord listRefCon; /* ListRec - becomes Control's refCon */
- BarColorsPtr listScrollClr; /* ListRec - Color table for list's scroll bar */
- } ListRec, *ListRecPtr, **ListRecHndl ;
-
- extern pascal void ListBootInit() inline(0x011C,dispatcher); /* List */
- extern pascal void ListStartup() inline(0x021C,dispatcher); /* List */
- extern pascal void ListShutDown() inline(0x031C,dispatcher); /* List */
- extern pascal Word ListVersion() inline(0x041C,dispatcher); /* List */
- extern pascal void ListReset() inline(0x051C,dispatcher); /* List */
- extern pascal Boolean ListStatus() inline(0x061C,dispatcher); /* List */
- extern pascal ListCtlRecHndl CreateList() inline(0x091C,dispatcher); /* List */
- extern pascal void DrawMember() inline(0x0C1C,dispatcher); /* List */
- extern pascal LongProcPtr GetListDefProc() inline(0x0E1C,dispatcher); /* List */
- extern pascal void NewList() inline(0x101C,dispatcher); /* List */
- extern pascal MemRecPtr NextMember() inline(0x0B1C,dispatcher); /* List */
- extern pascal MemRecPtr ResetMember() inline(0x0F1C,dispatcher); /* List */
- extern pascal void SelectMember() inline(0x0D1C,dispatcher); /* List */
- extern pascal void SortList() inline(0x0A1C,dispatcher); /* List */
-
- #endif
-